package org.apogeescience.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import org.apogeescience.annotation.enums.QueryType;

@Retention(RetentionPolicy.RUNTIME)
/**
 * NamedQuery to execute
 * @author Isaac
 *
 */
public @interface NamedQuery {

	/**
	 * Name of the Query
	 * @return
	 */
	String name();

	/**
	 * List of {@link Parameter} to query by
	 * @return
	 */
	Parameters parameters();

	/**
	 * Order by
	 * @return
	 */
	String orderBy() default "";

	/**
	 * {@link QueryType} whether it be Select, insert, update, delete
	 * @return
	 */
	QueryType queryType() default QueryType.Select;

}
